package dao;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import utiles.Conecta;
import dto.LeerRankEjec2DTO;

public class LeerRankEjec2DAO {

	public List getAllRankEjec(String codigoConcurso, String ano, String mes, String cargo) throws SQLException, IOException{
		Conecta connDao = new Conecta();
		Connection conn = connDao.ObtieneConexion();	
		List listRankEjec = new ArrayList();
		PreparedStatement stmt = null; 
		ResultSet rs=null; 
		try{
			String sql = "select NOMEJECUTIVO, CALIFICA, CANTIDADCORREDORESEMBARCADOSFUSION, CANTIDADCORREDORESPARTICIPAFUSION, PUNTAJEACUMULADOFUSION, PRIMAACUMULADAFUSION, PRIMAPARTIDAFUSION  from  " + Conecta.schema + ".CC_EJECUTIVOSPERIODO where CODIGOCONCURSO='"+ codigoConcurso +"' and ANO= "+ ano +" and MES= "+ mes +"  and  CARGO = '"+ cargo +"' AND POSICIONRANKING > 0 ORDER BY POSICIONRANKING  ";		  
			stmt=conn.prepareStatement(sql);  
			rs=stmt.executeQuery();
			String pjtacum = null;
			String primaacum = null;
			String primapart= null;
			String dife= null;
			
			while (rs.next()) {
				LeerRankEjec2DTO BuscaDTO = new LeerRankEjec2DTO();	
				BuscaDTO.setNomEjecutivo(rs.getString(1));
				String cal=rs.getString(2);
				if (cal != null && cal.equals("S")){
					cal="CALIFICA";
					BuscaDTO.setCalifica(cal);
				}
				else{ 
					cal="";
					BuscaDTO.setCalifica(cal);
				}
				double pac=rs.getDouble(6);
				double ppart=rs.getDouble(7);
				double dif=pac-ppart;
				BuscaDTO.setCantidadCorredoresEmbarcados(rs.getString(3));			
				BuscaDTO.setCantidadCorredoresParticipa(rs.getString(4));
				pjtacum = rs.getString(5);
				int indice = pjtacum.indexOf(".");
				String newvar = pjtacum.substring(0,indice)+"."+pjtacum.substring(indice+1,indice+3);
				BuscaDTO.setPuntajeAcumulado(newvar);	
				primaacum = rs.getString(6);
				int indice2 = primaacum.indexOf(".");
				String newvar2 = primaacum.substring(0,indice2)+"."+primaacum.substring(indice2+1,indice2+3);
				BuscaDTO.setPrimaAcumulada(newvar2);
				primapart = rs.getString(7);
				int indice3 = primapart.indexOf(".");
				String newvar3 = primapart.substring(0,indice3)+"."+primapart.substring(indice3+1,indice3+3);
				BuscaDTO.setPrimaPartida(newvar3);
				dife = Double.toString(dif);
				int indice4 = dife.indexOf(".");
				String newvar4 = dife.substring(0,indice4)+"."+dife.substring(indice4+1,indice4+3);
				BuscaDTO.setDiferencia(newvar4);
				/*System.out.println(rs.getString(1));
				System.out.println(cal);
				System.out.println(rs.getString(3));
				System.out.println(rs.getString(4));
				System.out.println(newvar);
				System.out.println(newvar2);
				System.out.println(newvar3);
				System.out.println(dif); */
				listRankEjec.add(BuscaDTO);			
			}
			rs.close();
			stmt.close();
		} catch (SQLException ex) {  

			System.out.println(ex.getMessage());
		} finally {

			connDao.desconecta(conn);
		}	
		return listRankEjec;
	}

	public static void main(String[] args) {

		LeerRankEjec2DAO carga = new LeerRankEjec2DAO();
		try {
			carga.getAllRankEjec("CONCURSO2011","2011","12","Gerente Oficina");
		} catch (SQLException e) {		


			e.printStackTrace();
		} catch (IOException e) {

			e.printStackTrace();
		}
	}

}

